#ifndef __PLUG_HISIGNALLING_H__
#define __PLUG_HISIGNALLING_H__

#include "hi_type.h"

#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif /* End of #ifdef __cplusplus */

typedef enum tagPLUG_COMMON_HISIGNALING_GESTURE_E
{
    /* door type */
    PLUG_COMMON_GREEN_LIGHT_ON = 0,
    PLUG_COMMON_GREEN_LIGHT_OFF,
    PLUG_COMMON_BUTT
}PLUG_COMMON_HISIGNALING_GESTURE_E;


typedef HI_S32 (*PLUG_HISIGNALLING_SEND_CALLBACK_PTR)(HI_S32 fd, HI_VOID *buf);

typedef HI_S32 (*PLUG_HISIGNALLING_RECV_CALLBACK_PTR)(HI_U8 *pu8Payload);

typedef struct tagPLUG_HISIGNALLING_INFO
{
    PLUG_HISIGNALLING_RECV_CALLBACK_PTR pfnRecMsg;
    PLUG_HISIGNALLING_SEND_CALLBACK_PTR pfnSenMsg;
}PLUG_HISIGNALLING_INFO;

/**
 * @brief    hisignalling init
 * @param[in] none
 * @return 0 success,non-zero error code.
 * @exception    None
 */
HI_S32 PLUG_HISIGNALLING_Init(PLUG_HISIGNALLING_INFO stInfo);

/**
 * @brief    hisignalling sen msg
 * @param[in] none
 * @return 0 success,non-zero error code.
 * @exception    None
 */
HI_S32 PLUG_HISIGNALLING_SendMsg(PLUG_COMMON_HISIGNALING_GESTURE_E enType);

/**
 * @brief    hisignalling deinit
 * @param[in] none
 * @return 0 success,non-zero error code.
 * @exception    None
 */
HI_S32 PLUG_HISIGNALLING_Deinit(HI_VOID);

HI_S32 PLUG_HISIGNALLING_RecvMsg(HI_VOID);


#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* End of #ifdef __cplusplus */

#endif

